﻿namespace IBNet.DayTrade
{
   /// <summary>
   /// A container class for market scanner string constants.
   /// </summary>
   public static class MarketScannerCodes
   {
      /// <summary>
      /// <instruments>Works with IND.US, STK, FUT.US</instruments>
      /// </summary>
      public const string TOP_PERC_GAIN = "TOP_PERC_GAIN";

      /// <summary>
      /// <instruments>Works with IND.US, STK, FUT.US</instruments>
      /// </summary>
      public const string TOP_PERC_LOSE = "TOP_PERC_LOSE";

      /// <summary>
      /// <instruments>Works with STK, FUT.US</instruments>
      /// </summary>
      public const string MOST_ACTIVE = "MOST_ACTIVE";

      /// <summary>
      /// <instruments>Works with STK</instruments> 
      /// </summary>
      public const string NOT_OPEN = "NOT_OPEN";

      /// <summary>
      /// <instruments>Works with STK, FUT.US</instruments> 
      /// </summary>
      public const string HALTED = "HALTED";

      /// <summary>
      /// <instruments>Works with STK</instruments> 
      /// </summary>
      public const string HOT_BY_PRICE = "HOT_BY_PRICE";

      /// <summary>
      /// <instruments>Works with STK</instruments>
      /// </summary>
      public const string HOT_BY_VOLUME = "HOT_BY_VOLUME";

      /// <summary>
      /// <instruments>Works with STK</instruments>
      /// </summary>
      public const string TOP_TRADE_COUNT = "TOP_TRADE_COUNT";

      /// <summary>
      /// <instruments>Works with STK, FUT.US. Returns Trades/Min</instruments>
      /// </summary>
      public const string TOP_TRADE_RATE = "TOP_TRADE_RATE";

      /// <summary>
      /// <instruments>Works with STK</instruments>
      /// </summary>
      public const string TOP_PRICE_RANGE = "TOP_PRICE_RANGE";

      /// <summary>
      /// <instruments>Works with STK</instruments>
      /// </summary>
      public const string HOT_BY_PRICE_RANGE = "HOT_BY_PRICE_RANGE";

      /// <summary>
      /// <instruments>Works with STK</instruments>
      /// </summary>
      public const string TOP_VOLUME_RATE = "TOP_VOLUME_RATE";

      /// <summary>
      /// <instruments>Works with STK. Returns Open, Last Price, Change Since Open</instruments>
      /// </summary>
      public const string TOP_OPEN_PERC_GAIN = "TOP_OPEN_PERC_GAIN";

      /// <summary>
      /// <instruments>Works with STK. Returns Open, Last Price, Change Since Open</instruments>
      /// </summary>
      public const string TOP_OPEN_PERC_LOSE = "TOP_OPEN_PERC_LOSE";

      /// <summary>
      /// <instruments>Works with STK. Returns Close, Open, Gap</instruments> 
      /// </summary>
      public const string HIGH_OPEN_GAP = "HIGH_OPEN_GAP";

      /// <summary>
      /// <instruments>Works with STK. Returns Close, Open, Gap</instruments> 
      /// </summary>
      public const string LOW_OPEN_GAP = "LOW_OPEN_GAP";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Close Opt Imp Vol, Change Opt Imp Vol (%), Opt Imp Vol, Time in Scan</instruments>
      /// </summary>
      public const string HIGH_OPT_IMP_VOLAT = "HIGH_OPT_IMP_VOLAT";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Close Opt Imp Vol, Change Opt Imp Vol (%), Opt Imp Vol, Time in Scan</instruments> 
      /// </summary>
      public const string LOW_OPT_IMP_VOLAT = "LOW_OPT_IMP_VOLAT";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Close Opt Imp Vol, Change Opt Imp Vol (%), Opt Imp Vol, Time in Scan</instruments> 
      /// </summary>
      public const string TOP_OPT_IMP_VOLAT_GAIN = "TOP_OPT_IMP_VOLAT_GAIN";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Close Opt Imp Vol, Change Opt Imp Vol (%), Opt Imp Vol, Time in Scan</instruments>
      /// </summary>
      public const string TOP_OPT_IMP_VOLAT_LOSE = "TOP_OPT_IMP_VOLAT_LOSE";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Und Hist Vol, Opt Imp Vol, Opt Imp Vol Over Hist, Time in Scan</instruments> 
      /// </summary>
      public const string HIGH_OPT_IMP_VOLAT_OVER_HIST = "HIGH_OPT_IMP_VOLAT_OVER_HIST";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Und Hist Vol, Opt Imp Vol, Opt Imp Vol Over Hist, Time in Scan</instruments>
      /// </summary>
      public const string LOW_OPT_IMP_VOLAT_OVER_HIST = "LOW_OPT_IMP_VOLAT_OVER_HIST";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Opt Imp Vol, Opt Volume P/C Ratio, Opt Volume, Time in Scan</instruments>
      /// </summary>
      public const string OPT_VOLUME_MOST_ACTIVE = "OPT_VOLUME_MOST_ACTIVE";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Opt Imp Vol, Opt Open Interest P/C Ratio, Opt Open Interest, Time in Scan</instruments>
      /// </summary>
      public const string OPT_OPEN_INTEREST_MOST_ACTIVE = "OPT_OPEN_INTEREST_MOST_ACTIVE";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Opt Imp Vol, Opt Volume, Opt Volume P/C Ratio, Time in Scan</instruments> 
      /// </summary>
      public const string HIGH_OPT_VOLUME_PUT_CALL_RATIO = "HIGH_OPT_VOLUME_PUT_CALL_RATIO";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Opt Imp Vol, Opt Volume, Opt Volume P/C Ratio, Time in Scan</instruments>
      /// </summary>
      public const string LOW_OPT_VOLUME_PUT_CALL_RATIO = "LOW_OPT_VOLUME_PUT_CALL_RATIO";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Opt Imp Vol, Opt Open Interest, Opt Open Interest P/C Ratio, Time in Scan</instruments> 
      /// </summary>
      public const string HIGH_OPT_OPEN_INTEREST_PUT_CALL_RATIO = "HIGH_OPT_OPEN_INTEREST_PUT_CALL_RATIO";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Opt Imp Vol, Opt Open Interest, Opt Open Interest P/C Ratio, Time in Scan</instruments> 
      /// </summary>
      public const string LOW_OPT_OPEN_INTEREST_PUT_CALL_RATIO = "LOW_OPT_OPEN_INTEREST_PUT_CALL_RATIO";

      /// <summary>
      /// <instruments>Works with STK, IND.US. Returns Close, Last Price, Change (%), Opt Imp Vol, Opt Volume, Opt Volume/Avg, Time in Scan</instruments>
      /// </summary>
      public const string HOT_BY_OPT_VOLUME = "HOT_BY_OPT_VOLUME";

      public const string HIGH_SYNTH_BID_REV_NAT_YIELD = "HIGH_SYNTH_BID_REV_NAT_YIELD";
      public const string LOW_SYNTH_ASK_REV_NAT_YIELD = "LOW_SYNTH_ASK_REV_NAT_YIELD";
      public const string HIGH_VS_13W_HL = "HIGH_VS_13W_HL";
      public const string LOW_VS_13W_HL = "LOW_VS_13W_HL";
      public const string HIGH_VS_26W_HL = "HIGH_VS_26W_HL";
      public const string LOW_VS_26W_HL = "LOW_VS_26W_HL";
      public const string HIGH_VS_52W_HL = "HIGH_VS_52W_HL";
      public const string LOW_VS_52W_HL = "LOW_VS_52W_HL";
   }

   public static class Instrument
   {
      public const string STK = "STK";
      public const string FUT_US = "FUT.US";
      public const string IND_US = "IND.US";
   }

   public static class LocationCode
   {
      public const string STK_US = "STK.US";
      public const string STK_NYSE = "STK.NYSE";
      public const string STK_AMEX = "STK.AMEX";
      public const string STK_NASDAQ = "STK.NASDAQ";
      public const string STK_NASDAQ_NMS = "STK.NASDAQ.NMS";
      public const string STK_NASDAQ_SCM = "STK.NASDAQ.SCM";
      public const string STK_OTCBB = "STK.OTCBB";
      public const string FUT_US = "FUT.US";
      public const string FUT_GLOBEX = "FUT.GLOBEX";
      public const string FUT_ECBOT = "FUT_ECBOT";
      public const string FUT_EUREXUS = "FUT.EUREXUS";
      public const string FUT_NYMEX = "FUT.NYMEX";
      public const string IND_US = "IND.US";
   }
}